package com.cskaoyan.javase.oop2.hierarchy4;

/**
 * @description: 继承层次
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

import com.cskaoyan.javase.oop2.hierarchy4.anotherpackage.Grandson;

/**
 * Java没有多继承，所有的类都只有一个直接父类
 * 这种继承形式，称之为单继承
 * 既然有单继承，就有多继承，多继承就是可以直接继承多个类，获取多个类的成员
 * C++就是支持多继承
 * 多继承的优点：
 *  1，可以继承多个类的成员，很方便
 * 多继承的缺点：
 *  1，多继承会有很多麻烦，比如说继承的两个类有同名的成员咋办？
 *  给程序员带来麻烦
 *  Java的设计者，认为多继承带来的好处，不及它的麻烦，所以舍弃了多继承
 *  Java对C++语法的简化
 *
 *  实际上，Java在8版本及以后，引用了实际上的多继承，接口
 *
 *
 */
public class Demo {
    public static void main(String[] args) {
        //创建”孙子类“对象 下游类总是继承上游类的所有成员
        Grandson gs = new Grandson();
        System.out.println(gs.age);
        //System.out.println(gs.name);

        //下游类总是可以看成一个上游类
        //向上转型，是自动的
        //Father f = new GradeSon();
        //Son s = new GradeSon();
        Grandson gradeSon = new Grandson();
        System.out.println(gradeSon.age); //本包中
    }
}

//class Father2{
//
//}
//Class cannot extend multiple classes
//class Son extends Father,Father2{}
//class Son extends  Father{
//    String name;
//}

class GrandSon extends Son{
}